From 9daed8321b44c3ca82e412eb130f84e6b6c17dc5 Mon Sep 17 00:00:00 2001 From: Juergen Gross Date: Fri, 26 Aug 2016 13:58:55 +0200 Subject: [PATCH] libxc: correct max_pfn calculation for saving domain Commit 91e204d37f44913913776d0a89279721694f8b32 ("libxc: try to find last used pfn when migrating") introduced a bug for the case of a domain supporting the virtual mapped linear p2m list: the maximum pfn of the domain calculated from the p2m memory allocation might be too low. Correct this. Reported-by: Stefan Bader Signed-off-by: Juergen Gross Tested-by: Stefan Bader Acked-by: Wei Liu --- tools/libxc/xc_sr_save_x86_pv.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/libxc/xc_sr_save_x86_pv.c b/tools/libxc/xc_sr_save_x86_pv.c index 4a29460a31..7043409231 100644 --- a/tools/libxc/xc_sr_save_x86_pv.c +++ b/tools/libxc/xc_sr_save_x86_pv.c @@ -430,6 +430,8 @@ static int map_p2m_list(struct xc_sr_context *ctx, uint64_t p2m_cr3) if ( level == 2 ) { + if ( saved_idx == idx_end ) + saved_idx++; max_pfn = ((xen_pfn_t)saved_idx << 9) * fpp - 1; if ( max_pfn < ctx->x86_pv.max_pfn ) { -- 2.30.2